package org.gr.ias.common.entity;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

public class ProjectFinancingExtAssets implements Serializable {
    /** 主键*/
    private String id;

    /** 对应融资信息ID*/
    private String projectFinancingId;

    /** 交易类别：
            01-房屋
            02-土地
            03-交通工具
            04-机械设备
            05-账款债权
            06-有价票据
            07-无形资产
            08-股权
            09-金融资产
            10-林权
            11-存活
            12-收藏品
            13-经营权
            14-矿产
            15-其他*/
    private String tradeType;

    /** 交易方式：
            01-拍卖
            02-协议
            03-竞价
            04-招标*/
    private String tradeWay;

    /** 转让范围：
            01-整体
            02-部分*/
    private String transferRange;

    /** 资产估价*/
    private BigDecimal assetsEvaluation;

    /** 资产估价单位：
            01-万元
            02-亿元*/
    private String assetsEvaluationUnit;

    /** 转让价格*/
    private BigDecimal transferPrice;

    /** 转让价格单位：
            01-万元
            02-亿元*/
    private String transferPriceUnit;

    /** 截止时间*/
    private Date timeLimit;

    private static final long serialVersionUID = 1L;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id == null ? null : id.trim();
    }

    public String getProjectFinancingId() {
        return projectFinancingId;
    }

    public void setProjectFinancingId(String projectFinancingId) {
        this.projectFinancingId = projectFinancingId == null ? null : projectFinancingId.trim();
    }

    public String getTradeType() {
        return tradeType;
    }

    public void setTradeType(String tradeType) {
        this.tradeType = tradeType == null ? null : tradeType.trim();
    }

    public String getTradeWay() {
        return tradeWay;
    }

    public void setTradeWay(String tradeWay) {
        this.tradeWay = tradeWay == null ? null : tradeWay.trim();
    }

    public String getTransferRange() {
        return transferRange;
    }

    public void setTransferRange(String transferRange) {
        this.transferRange = transferRange == null ? null : transferRange.trim();
    }

    public BigDecimal getAssetsEvaluation() {
        return assetsEvaluation;
    }

    public void setAssetsEvaluation(BigDecimal assetsEvaluation) {
        this.assetsEvaluation = assetsEvaluation;
    }

    public String getAssetsEvaluationUnit() {
        return assetsEvaluationUnit;
    }

    public void setAssetsEvaluationUnit(String assetsEvaluationUnit) {
        this.assetsEvaluationUnit = assetsEvaluationUnit == null ? null : assetsEvaluationUnit.trim();
    }

    public BigDecimal getTransferPrice() {
        return transferPrice;
    }

    public void setTransferPrice(BigDecimal transferPrice) {
        this.transferPrice = transferPrice;
    }

    public String getTransferPriceUnit() {
        return transferPriceUnit;
    }

    public void setTransferPriceUnit(String transferPriceUnit) {
        this.transferPriceUnit = transferPriceUnit == null ? null : transferPriceUnit.trim();
    }

    public Date getTimeLimit() {
        return timeLimit;
    }

    public void setTimeLimit(Date timeLimit) {
        this.timeLimit = timeLimit;
    }

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        ProjectFinancingExtAssets other = (ProjectFinancingExtAssets) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
            && (this.getProjectFinancingId() == null ? other.getProjectFinancingId() == null : this.getProjectFinancingId().equals(other.getProjectFinancingId()))
            && (this.getTradeType() == null ? other.getTradeType() == null : this.getTradeType().equals(other.getTradeType()))
            && (this.getTradeWay() == null ? other.getTradeWay() == null : this.getTradeWay().equals(other.getTradeWay()))
            && (this.getTransferRange() == null ? other.getTransferRange() == null : this.getTransferRange().equals(other.getTransferRange()))
            && (this.getAssetsEvaluation() == null ? other.getAssetsEvaluation() == null : this.getAssetsEvaluation().equals(other.getAssetsEvaluation()))
            && (this.getAssetsEvaluationUnit() == null ? other.getAssetsEvaluationUnit() == null : this.getAssetsEvaluationUnit().equals(other.getAssetsEvaluationUnit()))
            && (this.getTransferPrice() == null ? other.getTransferPrice() == null : this.getTransferPrice().equals(other.getTransferPrice()))
            && (this.getTransferPriceUnit() == null ? other.getTransferPriceUnit() == null : this.getTransferPriceUnit().equals(other.getTransferPriceUnit()))
            && (this.getTimeLimit() == null ? other.getTimeLimit() == null : this.getTimeLimit().equals(other.getTimeLimit()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getProjectFinancingId() == null) ? 0 : getProjectFinancingId().hashCode());
        result = prime * result + ((getTradeType() == null) ? 0 : getTradeType().hashCode());
        result = prime * result + ((getTradeWay() == null) ? 0 : getTradeWay().hashCode());
        result = prime * result + ((getTransferRange() == null) ? 0 : getTransferRange().hashCode());
        result = prime * result + ((getAssetsEvaluation() == null) ? 0 : getAssetsEvaluation().hashCode());
        result = prime * result + ((getAssetsEvaluationUnit() == null) ? 0 : getAssetsEvaluationUnit().hashCode());
        result = prime * result + ((getTransferPrice() == null) ? 0 : getTransferPrice().hashCode());
        result = prime * result + ((getTransferPriceUnit() == null) ? 0 : getTransferPriceUnit().hashCode());
        result = prime * result + ((getTimeLimit() == null) ? 0 : getTimeLimit().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", projectFinancingId=").append(projectFinancingId);
        sb.append(", tradeType=").append(tradeType);
        sb.append(", tradeWay=").append(tradeWay);
        sb.append(", transferRange=").append(transferRange);
        sb.append(", assetsEvaluation=").append(assetsEvaluation);
        sb.append(", assetsEvaluationUnit=").append(assetsEvaluationUnit);
        sb.append(", transferPrice=").append(transferPrice);
        sb.append(", transferPriceUnit=").append(transferPriceUnit);
        sb.append(", timeLimit=").append(timeLimit);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}